Windowsでもパッケージ管理がしたい
ウィスキー、シガー、パイプをこよなく愛する大栗です。
たまにWindows Serverを触ることがあるのですが、ちょっとしたサードパーティのツールをインストールする時が少し面倒だったりします。Linuxのメジャーなディストリビューションでは標準のパッケージ管理システムがあり簡単にインストールすることができます。Windowsでは標準というべきものがなかったのですが、PackageManagement
が標準になりそうなので試してみました。
パッケージ管理システム
Linuxの場合は、ディストリビューションの標準として導入されています。有名な物だと、以下の様なものでしょうか。
- APT:Debian、Ubuntu
- yum:RHEL、CentOS、Amazon Linux
- DNF:Fedora
Windowsの世界は詳しくないのですが、調べてみると色々あるようで、例えば以下です。
- Web PI
- NuGet
- Chocolatey
- PackageManagement
この中で、今後主流になりそうなのがPackageManagement
の様です。PackageManagementはPowerShell 5.0に含まれる機能であるため、今後はOSに標準で搭載されるみたいです。
(すでにWindows 10には標準で入っているみたいですが最近クライアント用Windowsを触っていないので知りませんでした。。。)
PackageManagement
PackageManagementは元々OneGetという名前で開発されていたプロダクトで、Apache License 2.0を採用しています。
PackageManagementのアーキテクチャ図を見ると、エンドユーザはPowerShellコマンドレットを操作して、ディスカバリやインストール/アンインストール、インベントリを行うようです。各種プロバイダを経由してパッケージを取得します。
導入してみる
Windows Server 2012 R2へ導入してみます。PowerShell 5.0をインストールするためにWindows Management Framework 5.0をダウンロードします。
ダウンロード対象ファイルは以下の5種類があるので、Windows Server 2012 R2に対応しているWin8.1AndW2K12R2-KB3134758-x64.msu
をダウンロードします。
ファイル名 | アーキテクチャ | 対象OS |
---|---|---|
W2K12-KB3134759-x64.msu | x64 | Windows Server 2012 |
Win7AndW2K8R2-KB3134760-x64.msu | x64 | Windows Server 2008 R2、Windows 7 SP1 |
Win7-KB3134760-x86.msu | x86 | Windows 7 SP1 |
Win8.1AndW2K12R2-KB3134758-x64.msu | x64 | Windows Server 2012 R2、Windows 8.1 |
Win8.1-KB3134758-x86.msu | x86 | Windows 8.1 |
ダウンロードしたWin8.1AndW2K12R2-KB3134758-x64.msu
を実行します。
はい(Y)
をクリックします。
ライセンス条項を確認して、同意します(A)
をクリックします。
インストールが始まります。
インストールが完了したら今すぐ再起動
をクリックして再起動します。
PackageManagementを使用してみる
まずは、PowerShellのスクリプトを実行するためスクリプトの実行を許可します。
PS C:\Users\Administrator> Set-ExecutionPolicy RemoteSigned -Force
設定されているプロバイダーを確認するためにFind-PackageProvider
コマンドレットを実行します。プロバイダのDLLを自動でインストールするために-ForceBootstrap
オプションを付けます。
PPS C:\Users\Administrator> Find-PackageProvider -ForceBootstrap Name Version Source Summary ---- ------- ------ ------- nuget 2.8.5.205 https://oneget.org/nuget-2.... NuGet provider for the OneGet meta-pa... chocolatey 2.8.5.130 https://oneget.org/Chocolat... ChocolateyPrototype provider for the ... ContainerImage 0.6.4.0 PSGallery This is a PackageManagement provider ... NanoServerPackage 0.1.1.0 PSGallery A PackageManagement provider to disco... MyAlbum 0.1.2 PSGallery MyAlbum provider discovers the photos... GistProvider 0.6 PSGallery Gist-as-a-Package - PackageManagement... GitHubProvider 0.5 PSGallery GitHub-as-a-Package - PackageManageme... TSDProvider 0.2 PSGallery PowerShell PackageManager provider to... OfficeProvider 1.0.0.1 PSGallery OfficeProvider allows users to instal... GitLabProvider 1.2.0 PSGallery GitLab PackageManagement provider WSAProvider 1.0.0.4 PSGallery Provider to Discover, Install and inv...
ここではVisual Studio Codeをインストールしてみます。
Visual Studio Codeはchocolatey
にあるので、パッケージを確認してみます。
PS C:\Users\Administrator> Find-Package -ForceBootstrap -Name VisualStudioCode -Provider chocolatey Name Version Source Summary ---- ------- ------ ------- VisualStudioCode 1.2.1 chocolatey Visual Studio Code
Visual Studio Codeをインストールします。
PS C:\Users\Administrator> Install-Package -Name VisualStudioCode -Force Name Version Source Summary ---- ------- ------ ------- VisualStudioCode 1.2.1 chocolatey Visual Studio Code
このようにVisual Studio Codeがインストールされます。
このようにVisual Studio Codeを起動できます。
さいごに
Windowsの次期サーバOSであるWindows Server 2016ではPowerShell 5.0が標準で入るので、PackageManagementも最初から使用できることになります。Windowsでも標準で簡単にパッケージ管理が行えるようになり、OSの管理が捗りそうです。